package recursos;
import vistas.*;
import java.util.*;

import pistas.*;


public class AsociadorDeVistasDePista {
	
	// Se crea un diccionario de Pistas asociadas a una determinada Figura.
	// no se asocia particularmente a una Vista de Pista porque la vista de
	// helipuerto no comparte el constructor de vista de Pista.
	private HashMap<Class<? extends Pista>,VistaPista> diccionarioDeVistas;
	
	public AsociadorDeVistasDePista(){
		diccionarioDeVistas = new HashMap<Class<? extends Pista>,VistaPista>();
		this.agregarEntrada(PistaSimple.class, (new VistaPistaSimple()) );
		this.agregarEntrada(PistaDoble.class, (new VistaPistaDoble()) );
		this.agregarEntrada(PistaLarga.class, (new VistaPistaLarga()) );
		this.agregarEntrada(Helipuerto.class, (new VistaHelipuerto()) );
	}
	private void agregarEntrada(Class<? extends Pista> unaClase, VistaPista unaVista){
		
		diccionarioDeVistas.put( unaClase , unaVista );
	}
	
	public VistaPista devolverVista(Pista unaPista) {
		
		VistaPista unaVista = (diccionarioDeVistas.get(unaPista.getClass()));
	
		return (VistaPista)unaVista.clonar();
	}

}